当前位置:  开发笔记 > 编程语言 > 正文

如何在没有代码隐藏的情况下在SqlParameter中使用ASP.NET当前用户名

如何解决《如何在没有代码隐藏的情况下在SqlParameter中使用ASP.NET当前用户名》经验,为你挑选了1个好方法。

如何在代码隐藏中使用aspx服务器标签来获取当前用户名?

在代码隐藏中,我可以这样做:

Label4.Text = User.Identity.Name.ToString()

但是我试图在没有代码隐藏的情况下这样做:


    
1.
2.
3.
4.
5.
6. <%= User.Identity.Name %>
7.
8. <%# User.Identity.Name %>
9. <%= User.Identity.Name %>
10.

我得到了第6行,第7行和第9行显示的用户名,但我真的想将控件的属性设置为该值,而不是仅仅在屏幕上显示它.

可能吗?

背景:我是掀起了一个快速的应用程序,并拖动页面上跌落的控制,并且事实证明,我只有有在网页的代码隐藏1线做到了.该行是在页面加载中将隐藏字段的值设置为当前用户名,因此我可以将该控件的值作为sql参数的参数传递.所以我认为,因为我走这条路(很多东西在aspx中可能不应该存在)我应该尝试与它保持一致.我通常不会这样做,但是这次想要



1> Arjan Einbu..:

在你写的评论中写道:

此外,如果我可以将任何控件值设置为此用户名,那么我可以指定我的sqlparameter是一个控件参数,这将使我得到我需要的位置.

您可以创建自定义参数类型.

首先在App_Code或ASP.NET Server控件dll中创建此类:

namespace ParameterDemo {
    public class LoginParameter : Parameter {
        public LoginParameter(string name)
            : base(name)
        {}

        protected override object Evaluate(HttpContext context, Control control)
        {
            //UPDATED as suggested in Joels comments below...
            //return HttpContext.Current.User.Identity.Name;
            return context.Current.User.Identity.Name;
        }
    }
}

并在页面上注册(在@Page指令之后)

<%@ Register TagPrefix="put" Namespace="ParameterDemo" %>

(或者在web.config中注册它以便在所有页面上使用)

......你可以像这样使用它:


    
        
    

如果这是您正在寻找的,您应该考虑编辑原始问题...

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有