首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得,可模拟,目前登录的asp .net成员的用户名?

如何获得,可模拟,目前登录的asp .net成员的用户名?
EN

Stack Overflow用户
提问于 2013-10-20 03:19:32
回答 3查看 110关注 0票数 0

目前,我正在使用Membership.GetUser()获取当前登录的用户名。然而,这是一个静态的方法,是不可模仿的。有没有其他方法来获得当前登录的用户名是模拟友好的?

FYI:我使用的是Moq框架和NUnit。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-20 06:52:07

通常,在这种情况下,您可以创建一个包装器接口,您可以使用该接口对GetUser()方法进行存根。

代码语言:javascript
运行
复制
public interface IMembersipService {
    MembershipUser GetUser();
}

public class MembersipService : IMembersipService
{
    public MembershipUser GetUser() {
        return Membership.GetUser();
    }
}

IMembersipService.GetUser()可以根据您的需要进行存根/模拟。

附加注意:成员资格类中还有其他例程,您可能需要访问这些例程。您可以使用相同的接口访问这些方法。在静态成员周围有这样一个包装的接口提供了可测试性。

票数 0
EN

Stack Overflow用户

发布于 2013-10-20 07:08:21

在ASP.NET MVC中,HttpContextBase被设计为可模拟的,因此您可以使用它的User属性来获取当前登录的用户。

票数 0
EN

Stack Overflow用户

发布于 2013-10-21 06:35:11

这将使您获得登录用户名:

代码语言:javascript
运行
复制
string userName = User.Identity.Name;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19473553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档