2012-03-02 37 views
0

可以从SqlDataSource中的XML参数访问User.Identity.Name吗?作为参数访问HttpContext.Current.User.Identity.Name到SqlDataSource

 <SelectParameters> 
      <asp:ControlParameter ControlID="SelectLoadScanner1" DefaultValue="0" Name="loadId" PropertyName="loadId" /> 
      <asp:SomeParameterType DefaultValue="" Name="username" PropertyName="HttpContext.Current.User.Identity.Name" /> 
     </SelectParameters> 

我想的第二个参数SomeParameterType引用一个HttpContext.Current.User.Identity.Name

我知道你可以添加一个onInserting事件并在后面的代码中执行它,但我宁愿它在XML中如果可能的话。

感谢,

回答

0

据我知道你不能直接使用标准parameters访问此属性。但是你可以通过ControlParameter一个新的属性UserName添加到您的页/控制和访问它:

public string UserName 
{ 
    get 
    { 
     if (HttpContext.Current == null || HttpContext.Current.User == null) 
      return null; 
     else 
      return HttpContext.Current.User.Identity.Name; 
    } 
} 

作为另一个选项,你可以扩展基Parameter类。

+0

该解决方案的“ControlID”会用什么? – jax 2012-03-03 12:54:42

+0

@jax:保存'UserName'属性的控件的'ID'。 – Alex 2012-03-03 13:24:32

+0

所以如果我把它放在页面中,我该用什么? – jax 2012-03-04 22:21:39