1

下午所有,

我有一个网站,我需要知道谁在我的数据库表中插入一条记录。我有一组用户,我已将其填充到 Active Directory (AD) 组中,而他们又是唯一能够访问该站点的成员。(参见下面的 web.config 代码和 .vb 代码)

'配置文件

     <appSettings>
           <add key="dbConnection" value="Data Source=xxx;Initial Catalog=xxx;User ID=xxx;Password=xxx;"/>
           <add key="Users" value="Users_General_Access"/>
     </appSettings>

'Vb 代码

    If User.IsInRole(ConfigurationManager.AppSettings("Users")) Then

    Else
        Response.Redirect("NotAuthorised.aspx")
    End If

我有一个存储过程,用于将表单字段中的数据插入数据库,它工作正常。

我遇到的问题是我没有要求用户登录,因为他们可以通过 AD 设置登录。但是我需要获取用户名,以便我可以将其填充到我的数据库表中以说明谁添加了该记录。

是否有一些我可以用来获取此信息的 VB 代码?

非常感谢贝蒂。

4

3 回答 3

5
HttpContext.Current.User.Identity.Name 

或仅 User.Identity.Name根据 OP 的代码User在范围内

会给你用户名。使用可以访问其他信息使用

User.Identity

于 2012-06-29T09:29:29.367 回答
3

您可以通过以下方式使用您的应用程序获取当前用户名:

string loggedUser = HttpContext.Current.User.Identity.Name.ToString();

一旦你有了这个,你可以存储在数据库中

将loggedUser传递给数据库

于 2012-06-29T09:31:10.403 回答
0

正如其他人所说,您可以使用User.Identity.Name.

如果您在 web.config 中添加正确的标签,您还可以摆脱检查角色成员身份的代码。仅当事先不知道角色名称并且无法将其存储在 web.config 文件中时,检查代码中的成员身份才有用,例如。当角色来自数据库时。

您可以使用位置标签指定有权访问特定页面的角色:

<configuration>
 ....
 <location path="MySecurePage.aspx">    
      <system.web>    
           <authorization>    
                <allow roles="Administrators,MyGroup" />    
                <deny users="*"/>
           </authorization>    
      </system.web>    
 </location> 
</configuration>
于 2012-06-29T09:44:07.117 回答