asp.net-mvc – 在Asp.Net MVC中使用混合身份验证(Forms,FB connect,twitter
发布时间:2020-05-24 10:47:02 所属栏目: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 – 什么是实例化和配置DbContext在MVC中的最佳
- asp.net – 如何在runat =“server”表单元素中包含thead?
- asp.net – 与Entity Framework中的联结表有多对多的关系?
- asp.net-mvc-4 – 基于角色的导航
- asp.net – 在PreRender上添加控件页面
- 使用ASP.NET将HTML表导出到Excel
- asp.net-mvc – 自定义异常过滤器在asp.net MVC中没有被击中
- asp.net – 如何跟踪IIS服务器性能
- ASP.NET MVP vs ASP.NET MVC
- asp.net-web-api – 交叉原始SignalR连接在协商后停止
推荐文章
站长推荐
热点阅读
