我已经写了几个ms lightswitch应用程序与表单身份验证 - >这在sql server中创建aspnet_ *表。 如何在服务堆应用程序中使用已定义的用户,密码,甚至是成员身份,角色和应用程序权限?使用asp.net认证与服务栈
4
A
回答
6
我还没有测试过这个,但我认为它应该让你开始。很高兴在我的任何步骤中纠正错误。
事情我认为你需要做的..
- 为了验证对阵双方“系统”你需要设置窗体的cookie并保存ServiceStack会议。
而不是调用FormsAuthentication.Authentiate()
做下面的事情。在完成所有步骤之前,这不会起作用。
var apiAuthService = AppHostBase.Resolve<AuthService>();
apiAuthService.RequestContext = System.Web.HttpContext.Current.ToRequestContext();
var apiResponse = apiAuthService.Authenticate(new Auth
{
UserName = model.UserName,
Password = model.Password,
RememberMe = false
});
- 创建的
IUserAuthRepository
一个子类(从aspnet_ *表检索会员/用户/角色并填充ServiceStack为AuthUser)。
CustomAuthRepository.cs(不完整的,但应该让你开始)
public class CustomAuthRepository : IUserAuthRepository
{
private readonly MembershipProvider _membershipProvider;
private readonly RoleProvider _roleProvider;
public CustomAuthRepository()
{
_membershipProvider = Membership.Provider;
_roleProvider = Roles.Provider;
}
public UserAuth GetUserAuthByUserName(string userNameOrEmail)
{
var user = _membershipProvider.GetUser(userNameOrEmail, true);
return new UserAuth {FirstName = user.UserName, Roles = _roleProvider.GetRolesForUser(userNameOrEmail).ToList() //FILL IN REST OF PROPERTIES};
}
public bool TryAuthenticate(string userName, string password, out UserAuth userAuth)
{
//userId = null;
userAuth = GetUserAuthByUserName(userName);
if (userAuth == null) return false;
if (FormsAuthentication.Authenticate(userName, password))
{
FormsAuthentication.SetAuthCookie(userName, false);
return true;
}
userAuth = null;
return false;
}
//MORE METHODS TO IMPLEMENT...
}
线验证了用于ServiceStack在APPHOST配置方法。
var userRep = new CustomAuthRepository(); container.Register<IUserAuthRepository>(userRep); Plugins.Add( new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new CredentialsAuthProvider() } ));
+0
谢谢。我认为这会帮助我开始,我会尽我的第一步,也许会回到你身边?最好的祝福 – user1753241 2013-02-26 08:55:53
相关问题
- 1. 使用ASP.NET认证/授权与卡西尼开发服务器
- 2. WCF服务与证书认证:
- 3. Asp.Net使用WCF服务的Web应用程序认证
- 4. 使用SOAP在Java中与API认证使用Web服务
- 5. RESTful用户认证服务
- 6. 认证使用RESTful Web服务
- 7. 谷歌认证使用azure服务
- 8. 使用Twitter的服务认证Oauth
- 9. 服务与形式的认证
- 10. .net认证与SQL服务器
- 11. 不经认证的Android与服务
- 12. 使用与OpenIdDict隐流,而无需认证服务器
- 13. 带有证书认证的iPhone Web服务调用WCF服务
- 14. ASP.NET web API认证与bacbone.js
- 15. 安全认证与ASP.net
- 16. OAuth用户认证与服务器认证和访问层相结合
- 17. 安全与ASP.NET Web服务使用jQuery
- 18. WCF数据服务认证
- 19. WCF REST服务认证
- 20. Android web服务认证
- 21. http服务器认证
- 22. WCF服务认证+ Sitecore
- 23. JAAS微服务认证
- 24. 认证WCF Web服务
- 25. 认证服务器通知
- 26. SOA服务认证/授权
- 27. Alfresco的Web服务认证
- 28. 认证在WCF服务
- 29. CoovaChilli&FREERADIUS:Apache服务器认证
- 30. Web服务soap头认证
认为这个答案有你需要的资源 - http://stackoverflow.com/questions/8711436/use-asp-net-membership-in-servicestack – paaschpa 2013-02-25 15:21:35
我已经研究了这个答案,它不是我所需要的。这个答案告诉我如何使用表单认证和服务堆认证,我想要做的是直接在服务堆中使用表单认证。 – user1753241 2013-02-25 15:47:46