在webMethod上使用FormsAuthentication

时间:2013-03-20 19:15:42

标签: asp.net ajax jquery webmethod

我有一个包含评论部分的页面。此部分与WebMethod进行通信,以便插入新评论。

[WebMethod]
public static bool insertComment(string commentString)
{
    //userName validation here
    string userName = (FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value).Name);

    return new CommentClass().InsertComment(commentString, userName);
}

问题是:“非静态字段需要对象引用”。 我知道我可以从隐藏字段或div发送信息,但是,该信息字段可能很容易更改。 那么哪种方式可以用来知道哪个用户在服务器端发布? 非常感谢!

1 个答案:

答案 0 :(得分:2)

Request对象是一个存在于Page中的实例,因此您需要一个在静态上下文中访问此对象的引用。您可以使用HttpContext.Current.Request在此上下文中访问Request

[WebMethod]
public static bool insertComment(string commentString)
{
    //userName validation here
    string userName = 
           (FormsAuthentication.Decrypt(
               HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName].Value).Name);
    return new CommentClass().InsertComment(commentString, userName);
}