2014-02-05 90 views
1

定製用戶ID根據一些職位,我決定嘗試通過自定義用戶ID綁定的用戶,沒有IPrincipal.Identity.NameSignalR 2綁定到聲明

所以我已經實現:

public class CustomUserIdProvider : IUserIdProvider 
{ 
    public string GetUserId(IRequest request) 
    { 
     var identity = (ClaimsPrincipal)Thread.CurrentPrincipal; 
     string id = identity.Claims.Where(c => c.Type == UserInfoIdClaimType) 
            .Select(c => c.Value).Single(); 
     return id; 
    } 
} 

但是當這個方法被調用,也有身份的任何要求......

,所以我不能在這一刻檢索索賠那裏?

或者我應該做不同?

+0

我以爲我讀過SignalR集線器在常規ASP.Net環境之外的地方。有些東西是不可用的(如會話)。我想知道如果用戶/身份也是其中之一... – Matt

+0

我已經調查了這個請求,它似乎有它的cookie和會話ID ... – Alnedru

回答

0

解決的問題,似乎我沒有正確註冊OWIN身份驗證,當我在網絡配置,它的工作!

+1

你應該使用IRequest.User而不是Thread.CurrentPrincipal – davidfowl