小编Fed*_*uma的帖子

在IIS Express上调试ASP.NET时重复的请求

我在调试ASP.NET Web应用程序(.NET 4.6.1)时发现了一种奇怪的行为.每当发生HTTP错误(例如404或403)时,请求就会被复制到最多3次.

我使用fiddler测试了这个单一的问题,Intellitrace有效地向我显示了三个相同的请求(即使我只发送一个请求).

提琴手 的IntelliTrace

我可以看到这个问题的影响,因为管道中的任何Owin中间件都被调用了三次.像这样的简单中间件:

app.Use(async (c, n) =>
{
    Debug.WriteLine("HIT!");
    await n.Invoke();
});
Run Code Online (Sandbox Code Playgroud)

将打印连续三次"HIT!" 进入控制台.

这种情况仅在请求生成错误时发生,而不是在请求由中间件处理时发生(例如,如果中间件以2XX状态代码响应则不会).

这是怎么回事?

我在Win10上运行VS2015和IIS Express 10.

[编辑]它可能与我的Web.config配置有关?我正在添加一段摘录.

<system.web>
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime targetFramework="4.6.1" enableVersionHeader="false" />
</system.web>
<system.webServer>
    <httpProtocol>
        <customHeaders>
            <clear />
        </customHeaders>
        <redirectHeaders>
            <clear />
        </redirectHeaders>
    </httpProtocol>
    <security>
        <requestFiltering removeServerHeader="true" />
    </security>
    <handlers>
        <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
        <remove name="OPTIONSVerbHandler" />
        <remove name="TRACEVerbHandler" />
        <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

c# asp.net iis iis-express owin

5
推荐指数
1
解决办法
689
查看次数

具有多租户数据访问的Web API身份验证

我不确定我是否使用了正确的标题,但我无法想出更好的方式来描述它.这可能更像是一个设计问题.

我有一个多租户数据库,其中一个用户可以属于一个或多个实体.我通过调用/ token端点使用他/她的凭据对用户进行身份验证.

收到令牌后,我调用自己的终点(使用令牌)获取该用户的可用实体列表,然后允许该用户在内存缓存中设置其当前实体.然后,我在内存缓存中使用它来查找所有后续请求的实体/租户ID,以便在调用DB时知道用户"登录"了哪个实体/租户.

理想情况下,我希望消除对内存缓存的需要,以便通过在代理中包含实体/租户ID作为声明来使我的应用程序更无状态,但在用户验证并选择他/她的实体后我才知道此ID .在令牌发布后,我显然无法更改或添加声明但是有没有其他设计来实现这种行为?

我认为可能每个租户使用一个子域,但从技术上讲,这更难以设置和维护.我还考虑过提示用户输入他/她希望以其凭据登录的实体作为自由文本,但这并不理想.

以前有人遇到过这个挑战吗?

c# authentication oauth-2.0 owin asp.net-web-api2

5
推荐指数
1
解决办法
3324
查看次数

#region和#endregion在c#中有什么用?

举个例子,如果我使用这个块,我可以实现什么?在起始区域之后名称背后有什么用处

#region MyClass definition
//Some code
#endregion
Run Code Online (Sandbox Code Playgroud)

c#

-6
推荐指数
2
解决办法
2206
查看次数