中易网

C#.NET (ASP.NET)怎么手动设置LoginView的视图

答案:1  悬赏:10  
解决时间 2021-03-21 08:51


[ 登录 ]


欢迎您, <%= UInFo %>[ ]


网站登陆后:
因为流程需要,不能通过点击注销来实现登出,也就因为这样视图还是登陆后的样子,我找了半天都没找到后台切换loginview视图的办法,或许有,但我不知道。。
ps:复制党就别来了。

该问题已经解决。通过formauthxxxxx.xx就可以删除当前已经登录表单。原理是,实际上以上控件使用的登录方法来自formauthxxxx.sign。
最佳答案
直接使用估计是够呛了,用Relfector反编译以后发现它的TempleteIndex是通过访问IPrincipal来确定的,并且没有提供public的方法来更改这个属性。
我觉得可行的办法是重写LoginView控件的CreateChildControls,反编译的内容。

protected internal override void CreateChildControls()
{
    this.Controls.Clear();
    Page page = this.Page;
    if (((page != null) && !page.IsPostBack) && !base.DesignMode)
    {
        this._templateIndex = this.GetTemplateIndex();
    }
    int templateIndex = this.TemplateIndex;
    ITemplate anonymousTemplate = null;
    switch (templateIndex)
    {
        case 0:
            anonymousTemplate = this.AnonymousTemplate;
            break;

        case 1:
            anonymousTemplate = this.LoggedInTemplate;
            break;

        default:
        {
            int num2 = templateIndex - 2;
            RoleGroupCollection roleGroups = this.RoleGroups;
            if ((0 <= num2) && (num2 < roleGroups.Count))
            {
                anonymousTemplate = roleGroups[num2].ContentTemplate;
            }
            break;
        }
    }
    if (anonymousTemplate != null)
    {
        Control container = new Control();
        anonymousTemplate.InstantiateIn(container);
        this.Controls.Add(container);
    }
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
给女孩子告白,她说不知道
橡胶胶料为什么要放置的一段时间才做拉伸测试
手机计算器被冻结怎么解冻?
怎样让皮肤白一些?
湖北省咸宁市赤壁市官塘驿镇泉洪岭村邮编是什
考驾照,报名不考了还用交费吗?
25乘以64乘以12点五用简便方法计算
我想把一张农行卡里的钱转到另一张农行卡中,
两岸早教与亲亲袋鼠哪家更注重发展宝宝情商
开了一个卖化妆品保健品的超市,开业致辞怎么
家里种果树好吗?
官膳包点明秀路店地址在什么地方,想过去办事
VRAY多图通道怎么修改各自的大小
梦到自己在地里捡花生吃意味什么?
网贷那个下款率高
推荐资讯
烟台自体脂肪和假体隆胸哪种更好
如何运行.net framework 4.0
当天的最高最低气温用复试折现统计图怎么画
为什么老是塞牙,怎么解决
十堰大众国际旅行社人民南路门市部我想知道这
海魅儿玻尿酸原液和菩古玛丽玻尿酸原液哪个好
台湾人很喜欢日本吗
香干炒空心菜怎么做
北京游长城、十三陵
梦见别人想用火车压邻居家的孩子
现在急需企业财务风险的外文参考文献和文献翻
我的佳宝过滤桶805抽不上来水(机器也转,开
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?