是否可以通过公共(public) WebMethod 确定当前用户的身份验证状态?到目前为止,这是我得到的:
[WebMethod]
public bool IsAuthenticated()
{
return Context.User.Identity.IsAuthenticated;
}
因为没有向此方法传递任何内容,并且 Context.User 是“匿名的”并且此时在技术上未经身份验证,所以响应始终为 false,即使对于经过身份验证的用户也是如此。
我的下一个想法是传入用户的 UserProviderKey (GUID) 并使用它来生成通用主体以进行验证。我不确定这是否可行,或者 GUID 本身是否提供足够的安全性来防止人们检索其他用户的身份验证状态。
请您参考如下方法:
您需要通过网络请求传递身份验证 cookie。这是 .NET 知道用户是否经过身份验证的方式(假设您使用的是标准身份验证)。
身份验证cookie与 session cookie无关,非常不安全。
