Master pages have no life of there own. Every method/property of a master page is merged with the real page using it. It includes WebMethod too...
Site.Master code:
[WebMethod]
public static void CheckSession()
{
}
Portal.aspx markup:
<%@ Page Language="C#" MasterPageFile="Site.Master" CodeBehind="Portal.aspx.cs" Inherits="Portal" %>
You can call CheckSession like this:
$.ajax({
url: 'Portal.aspx/CheckSession',
type: 'POST',
...