2010-03-09 125 views
0

我正在做一个简单的页面,我需要用户的登录界面。 我希望用户登录到该页面,当他登录时,他会从数据库中获取大量数据,这些数据是单独向他签名的。我之前使用了非常简单的数据表单来保存用户名,密码和uid。当用户登录该网站时,我将uid设置为会话,因此当我从数据库中选择时可以使用它。 这可能不是一种安全的方法....易于破解?Asp.net登录 - 使用用户数据

更好的方法是使用asp.net登录ID ...?

什么是最好的方式来做到这一点,我应该有ASPNETDB.MDF中的所有用户信息,并且当我在服务器上部署网站时,数据库是否工作?

我可以在部署时使用ASP.NET配置吗?

[编辑]

我如何使用asp.net登录来获取当前登录用户的用户ID,所以我能为他做的SQL querys?

回答

3

我认为你应该阅读更多关于“ASP.NET身份验证” - 关于如何实现用户登录/注销/获取用户ID等。关于“ASP.NET授权” - 关于安全性和访问,回来的某些问题。这有一个标准的机制。

开始与MSDN:

http://msdn.microsoft.com/en-us/library/eeyk640h.aspx 
http://msdn.microsoft.com/en-us/library/wce3kxhd.aspx 
+0

事实上,这是一个话题,你应该投入一些时间和精力来全面学习。 – Greg 2010-03-09 17:26:26

1

的ASP.NET成员资格提供可能会是你最好的方法,因为它可以处理所有您需要的基本水暖。这些表可以通过ASP.NET SQL Server安装向导(C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Aspnet_regsql.exe)快速设置,并且配置页面和开箱即用登录控件的组合让你快速启动并运行。我会建议走这条道路。

关于您的具体问题之一,登录用户的ID存储在ProviderUserKey中。这是在aspnet_Users和其他成员表中映射到UserId的值。这里是你如何得到的值:

using System.Web.Security; 

//ProviderUserKey is an object. 
//You will likely want to convert to string or Guid 
MembershipUser user = Membership.GetUser(); 
Object userId = user.ProviderUserKey; 
0

真的是没有错的,你正在做的方式,虽然有更简单的方法来做到这一点。

如果您正在创建登录哈希并将其存储在会话中,则用户无权访问该数据。

当您创建会话状态时,在cookie中发送的所有内容都是引用自己会话的GUID,而不是任何实际数据。因此,您通常可以假设数据受到保护,用户无法访问任何其他人的数据。