我有表单授权的asp.net Web表单应用程序。 WCF服务应用程序位于ASP.NET应用程序的子目录中。用户通过表单授权登录并使用向WCF服务发送$ .Ajax()(JQuery)请求的网页。在WCF方面,用户是未经授权的,因此我无法控制用户的操作。如何通过WCF服务使用ASP.NET成员资格提供程序? 我也使用webHttpBinding,打开了aspNetCompatibilityEnabled。
我尝试使用HttpContext和OperationContext,但它们都很清楚(没有关于自动化用户的信息)。
主要目标是确定用户ID。
我试过的一些方法:
string[] roles = Roles.GetRolesForUser();
IPrincipal princ = HttpContext.Current.User;
string coll = WebOperationContext.Current.IncomingRequest.Headers[HttpRequestHeader.Cookie];
bool tr = HttpContext.Current.User.Identity.IsAuthenticated;
RequestContext context = OperationContext.Current.RequestContext;
var message = context.RequestMessage;
var request = (HttpRequestMessageProperty)message.Properties[HttpRequestMessageProperty.Name];
string authorization = request.Headers[HttpRequestHeader.Authorization];
OperationContext op = OperationContext.Current;
ServiceSecurityContext ssc = op.ServiceSecurityContext;
string name = ssc.PrimaryIdentity.Name;
//IIdentity ident = ServiceSecurityContext.Current.PrimaryIdentity;
Object obj = HttpContext.Current.Session["Result"];