标签: identity

编写单元测试在ASP.NET Web API中使用User.Identity.Name的方法

我正在使用ASP.NET Web API的单元测试编写测试用例.

现在我有一个动作调用我在服务层定义的一些方法,在那里我使用了以下代码行.

string username = User.Identity.Name;
// do something with username
// return something
Run Code Online (Sandbox Code Playgroud)

现在我如何为此创建单元测试方法,我得到空引用异常.我是一个新的编写单元测试和东西.

我想仅为此使用单元测试.

请帮我解决这个问题.谢谢.

.net asp.net unit-testing identity username

41
推荐指数
3
解决办法
2万
查看次数

'is'运算符与非缓存整数意外地运行

在玩Python解释器时,我偶然发现了关于is运算符的这个冲突的情况:

如果评估发生在它返回的函数中True,如果它在外部完成则返回False.

>>> def func():
...     a = 1000
...     b = 1000
...     return a is b
...
>>> a = 1000
>>> b = 1000
>>> a is b, func()
(False, True)
Run Code Online (Sandbox Code Playgroud)

由于is运营商评估id()的参与对象,这意味着ab指向同一个int函数内声明的时候实例func,但是,相反,它们指向一个不同的对象时,它的外面.

为什么会这样?


注意:我知道identity(is)和equal(==)操作之间的区别,如了解Python的"is"操作符中所述.另外,我也知道python正在对范围内的整数执行缓存,[-5, 256]"is"中所述,运算符与整数一起出现意外行为.

不是这里的情况,因为数字超出了该范围,我确实想要评估身份而不是平等.

python int identity python-3.x python-internals

41
推荐指数
2
解决办法
1420
查看次数

插入行jdbc的主键?

是否有跨数据库平台方式来获取刚刚插入的记录的主键?

我注意到这个答案说你可以通过Calling得到它SELECT LAST_INSERT_ID(),我认为你可以调用SELECT @@IDENTITY AS 'Identity';有一种常见的方法在jdbc中的数据库中做这个吗?

如果不是,你会如何建议我为一段可以访问任何SQL Server,MySQL和Oracle的代码实现这个?

java identity jdbc

40
推荐指数
2
解决办法
4万
查看次数

SQL Server标识列值从0开始,而不是1

我有一个奇怪的情况,我的数据库中的一些表从0开始其ID,即使TABLE CREATE具有IDENTITY(1,1).某些表格是这样,但其他表格则不然.它一直工作到今天.

我已经尝试重置标识列:

DBCC CHECKIDENT (SyncSession, reseed, 0);
Run Code Online (Sandbox Code Playgroud)

但是新的记录从0开始.我已经尝试过为所有表做这个,但有些仍然从0开始,有些从1开始.

有什么指针吗?

(我正在使用带有高级服务的SQL Server Express 2005)

sql t-sql identity sql-server-2005 auto-increment

40
推荐指数
2
解决办法
5万
查看次数

Java是否保证Object.getClass()== Object.getClass()?

我的确意味着身份平等.

例如,以下内容是否始终打印为

System.out.println("foo".getClass() == "fum".getClass());
Run Code Online (Sandbox Code Playgroud)

java identity jvm equality class

39
推荐指数
3
解决办法
5987
查看次数

插入后获取新ID

我正在将一堆新行插入到表中,该表定义如下:

CREATE TABLE [sometable](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [someval] sometype NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

使用以下插入:

insert into sometable select somefield as someval from othertable
Run Code Online (Sandbox Code Playgroud)

当我完成后,我想知道所有新插入的行的ID.SCOPE_IDENTITY()仅返回插入的最后一行ID.

我怎样才能获得所有新ID?

一种让人想到的方法是从sometable和scope_identity()后插入中获取当前最大的标识,并使用这两个值从sometable中进行选择.例如:

declare @currentMaxId int;
select @currentMaxId=MAX(id) from sometable
insert into sometable select somefield as someval from othertable
select * from sometable where id>@currentMaxId and id<=SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)

有更好的模式吗?

sql sql-server identity insert

37
推荐指数
1
解决办法
3万
查看次数

成功登录后,User.Identity.GetUserId()返回null

我已经定义了一个临时变量来获取当前用户ID,它总是返回null.

这是快照:

用户身份

为什么?

更新:

    //
    // POST: /Account/Login
    [HttpPost]
    [AllowAnonymous]
    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
    {
        if (!ModelState.IsValid)
        {
            return Json(new { success = false, ex = "Fail to login." });
        }

        var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, isPersistent: true, shouldLockout: false);
        switch (result)
        {
            case SignInStatus.Success:
                string userId = User.Identity.GetUserId();
                return Json(new { success = true });
            case SignInStatus.Failure:
                return Json(new { success = false, ex = "Email or password was incorrect." });
            default:
                return Json(new { …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc identity asp.net-mvc-5

36
推荐指数
4
解决办法
2万
查看次数

如何将标识属性添加到SQL Server中的现有列

在SQL Server(在我的情况下,2005)中,如何使用T-SQL将identity属性添加到现有表列?

就像是:

alter table tblFoo 
    alter column bar identity(1,1)
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server identity

35
推荐指数
2
解决办法
7万
查看次数

Python中"a is b"和"id(a)== id(b)"有什么区别?

id()内置功能使...

一个整数(或长整数),保证在该生命周期内该对象是唯一且常量的.

is操作,相反,给...

对象身份

那么,为什么有可能有具有相同的两个对象id,但返回Falseis检查?这是一个例子:

>>> class Test():
...   def test():
...     pass
>>> a = Test()
>>> b = Test()
>>> id(a.test) == id(b.test)
True
>>> a.test is b.test
False
Run Code Online (Sandbox Code Playgroud)

一个更令人不安的例子:(继续上述)

>>> b = a
>>> b is a
True
>>> b.test is a.test
False
>>> a.test is a.test
False
Run Code Online (Sandbox Code Playgroud)

然而:

>>> new_improved_test_method = lambda: None
>>> a.test = new_improved_test_method
>>> a.test is a.test
True
Run Code Online (Sandbox Code Playgroud)

python identity

34
推荐指数
1
解决办法
2216
查看次数

MVC5(VS2012)标识CreateIdentityAsync - 值不能为null

我正在尝试为MVC5站点设置OAuth(在VS2012中).

我正在使用Fluent NHibernate.我已经设置了自己的Userstore并传入一个存储库对象来访问NHibernate会话对象.我将我的商店传递给默认的aspnet usermanager提供程序.这最终适用于本地注册和登录.我不是要设置连接/注册Facebook.

它获得了一个成功的帐户.在用户表中添加用户,在登录表中添加记录然后爆炸.我没有在用户存储中实现声明,或者在用户对象中放置声明集合.(不确定这是否真的需要,我正在剥离所有可能出错的东西以找到问题的根源).

爆炸的线是(在账户控制器中):

var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);            
Run Code Online (Sandbox Code Playgroud)

在这种方法中:

private async Task SignInAsync(IdentityUser user, bool isPersistent)
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪的结束

[ArgumentNullException: Value cannot be null.
Parameter name: value]
   System.Security.Claims.Claim..ctor(String type, String value, String valueType, String issuer, String originalIssuer, ClaimsIdentity subject, String propertyKey, String propertyValue) +14108789
   System.Security.Claims.Claim..ctor(String type, String value, String valueType) +62
   Microsoft.AspNet.Identity.<CreateAsync>d__0.MoveNext() +481
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +144
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +84
   System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() +49
   Web.Controllers.<SignInAsync>d__42.MoveNext() in d:\Google Drive\Development\GoalManagement\Web\Controllers\AccountController.cs:375
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +144
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +84
   Web.Controllers.<ExternalLoginConfirmation>d__35.MoveNext() in d:\Google Drive\Development\GoalManagement\Web\Controllers\AccountController.cs:311
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +144 …
Run Code Online (Sandbox Code Playgroud)

asp.net identity claims-based-identity asp.net-mvc-5 asp.net-identity

34
推荐指数
4
解决办法
2万
查看次数