asp.net-mvc – 在Asp.Net MVC中使用混合身份验证(Forms,FB conn
发布时间:2020-12-16 04:29:35 所属栏目:asp.Net 来源:网络整理
导读:我正在创建一个新网站,我希望用户能够使用多种方式登录,基本上用户应该能够在我的网站上创建新用户或使用Facebook连接或使用Twitter的帐户登录该网站. 我已经看过几个关于使用这些方法之一的教程,我想知道的是你认为最好的方法是什么? 到目前为止,我认为最
我正在创建一个新网站,我希望用户能够使用多种方式登录,基本上用户应该能够在我的网站上创建新用户或使用Facebook连接或使用Twitter的帐户登录该网站.
我已经看过几个关于使用这些方法之一的教程,我想知道的是你认为最好的方法是什么? 到目前为止,我认为最好的方法是创建自定义身份验证模型(类似于对现有授权类进行子类型化). 这是最好的方法吗? 非常感谢 解决方法
我最近写了类似的东西…这是我采取的方法
public class User { public int UserID { get; set; } public string Name { get; set; } public string Page { get; set; } public virtual Authentication Authentication { get; set; } } public class Authentication { public int Id { get; set; } public string LoginId { get; set; } public string Provider { get; set; } public string Password { get; set; } public virtual User User { get; set; } } //login methods User StandardUserLogin(string username) { IDataContext db = new DataContext(); var user = db.Users.SingleOrDefault(u => u.Authentication.LoginId == username); if (user != null) { if (user.Authentication.Password == password) { SetAuthenticationTicket(user); return user; } } } 我会为每种类型的登录创建不同的登录方法,具体取决于其授权方案的工作方式. User OpenIdUserLogin(string username) { IDataContext db = new DataContext(); var user = db.Users.SingleOrDefault(u => u.Authentication.LoginId == username && u.Authentication.Provider == "openid"); if (user == null) { //create new openid user } if (user.Authentication.LoginId == id) { SetAuthenticationTicket(user); return user; } } //openid's authentication method [ValidateInput(false)] public ActionResult Authenticate(string returnUrl) { IAuthenticationResponse response = OpenId.GetResponse(); if (response == null) { //make openid request here } else { var user = OpenIdUserLogin(response.ClaimedIdentifier); } } 顺便说一句,顶部的两个类代表我的实体框架POCO这里的关键是身份验证表,它与用户表分开.它允许一个用户拥有多种登录方式.希望这可以帮助您实现正常运行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net-mvc – ActionResult返回类型的要点是什
- asp.net – 如何防止重播攻击?
- asp.net-mvc – Visual Studio 2012 ASP.NET MVC
- asp.net – 使用HttpHandler和IIS 5.1在iPhone上
- asp.net-mvc – ASP.NET MVC中的访问键
- asp.net-mvc – Web API返回csv文件
- asp.net-mvc – 如何为特定的Controller / Actio
- asp.net-mvc-3 – 在ASP.NET MVC中本地化/翻译路
- asp.net-mvc – 显示用户内容可用操作的干净/干燥
- asp.net-mvc – 如何保护对返回JSON的MVC操作的访
热点阅读