基于ASP.NET身份验证的WCF AJAX服务复用表单登录凭证认证需求
复用ASP.NET站点登录凭证认证同宿主WCF AJAX服务
需求场景
在已集成ASP.NET Identity Provider、采用Forms Authentication的现有ASP.NET Web应用中,需复用用户已提交的站点登录凭证,对同宿主的WCF AJAX Enabled Web Service进行认证——仅通过表单网站认证的用户可访问该服务,无需额外认证流程。
关键实现代码
判断用户是否已认证
通过ASP.NET Identity框架的API,可直接检查当前用户的认证状态:
bool isUserAuthenticated = (System.Web.HttpContext.Current.User != null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated;
获取已认证用户ID
若用户已完成认证,可通过以下代码获取其用户ID:
System.Web.HttpContext.Current.User.Identity.GetUserId();
注意事项
WCF Web服务的默认上下文为OperationContext,但在同宿主的ASP.NET应用场景下,只要WCF服务配置启用了与ASP.NET的集成,就可以通过System.Web.HttpContext.Current访问到包含用户认证信息的HTTP上下文。
内容的提问来源于stack exchange,提问作者Joshua Ginn
相关产品推荐
相关产品推荐

