小编Dea*_*ing的帖子

表单身份验证:禁用重定向到登录页面

我有一个使用ASP.NET Forms身份验证的应用程序.在大多数情况下,它工作得很好,但我试图通过.ashx文件添加对简单API的支持.我希望ashx文件具有可选的身份验证(即,如果您不提供身份验证标头,那么它只是匿名工作).但是,根据您的操作,我希望在某些条件下要求身份验证.

如果没有提供所需的身份验证,我认为用状态代码401进行响应将是一件简单的事情,但似乎Forms Authentcation模块正在拦截它并通过重定向到登录页面进行响应.我的意思是,如果我的ProcessRequest方法看起来像这样:

public void ProcessRequest(HttpContext context)
{
    Response.StatusCode = 401;
    Response.StatusDescription = "Authentication required";
}
Run Code Online (Sandbox Code Playgroud)

然后,而不是像我期望的那样在客户端上获得401错误代码,我实际上正在获得302重定向到登录页面.

对于nornal HTTP流量,我可以看到它是如何有用的,但是对于我的API页面,我希望401经过不加修改,以便客户端调用者可以以编程方式响应它.

有没有办法做到这一点?

asp.net forms-authentication

69
推荐指数
6
解决办法
4万
查看次数

重载分辨率和虚拟方法

考虑以下代码(它有点长,但希望你可以遵循):

class A
{
}

class B : A
{
}

class C
{
    public virtual void Foo(B b)
    {
        Console.WriteLine("base.Foo(B)");
    }
}

class D: C
{
    public override void Foo(B b)
    {
        Console.WriteLine("Foo(B)");
    }

    public void Foo(A a)
    {
        Console.WriteLine("Foo(A)");
    }
}

class Program
{
    public static void Main()
    {
        B b = new B();
        D d = new D ();
        d.Foo(b);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果你认为这个程序的输出是"Foo(B)"那么你和我在同一条船上:完全错了!事实上,它输出"Foo(A)"

如果我从C类中删除虚方法,那么它按预期工作:"Foo(B)"是输出.

为什么编译器选择带有Awhen 的版本B是派生得更多的类?

c# virtual-functions overload-resolution

22
推荐指数
2
解决办法
2230
查看次数

Windows有一个很好的Fogbugz客户端吗?

有趣的是,我已经为Fogbugz的OSX客户端找到了一些指针和一个线程.在这里,我正在寻找一个Windows客户端.

我知道Windows有Web浏览器,但我正在寻找快速编辑; 快速改变属性("一键"); 以毫秒为单位切换案例和编辑; 没有等待HTTP往返,只是纯粹的速度.

这有什么解决方案吗?

windows fogbugz

16
推荐指数
1
解决办法
1009
查看次数

如果我向用户发送修补程序,他们是否会继续从Play商店获取更新?

假设我有一个用户已经从Play商店安装的应用程序,如果我的一个用户报告了一个错误,我想向他们发送一个补丁版本的应用程序进行测试,他们可以将它安装到他们的手机上就好了.但是,如果我随后在Play商店更新应用程序,用户是否会获得更新?我的测试似乎表明情况确实存在,但是有没有问题?

我的构建过程的工作方式是每次构建时,它都会获得更高版本的代码,因此修补后的版本将具有比当前Play商店更高的版本代码,然后是我发送上传到Play商店的版本我的用户补丁将再次拥有更高版本的代码.

android updates apk google-play

8
推荐指数
1
解决办法
1124
查看次数

C#中的正则表达式

我有这样的文字.

@@ MMIVLoader @ ProductVer @ 4.1.2 @ BCM_7400S_LE @ @产品2009年8月21日@
@@ MMIVLib @ ObjectVer @ 4.1.2 @ BCM_7400S_LE @ @产品2009年8月21日@
@@ HuaweFGDLDrv @ ObjectVer @ 01.00.09 @ 7324 @ @ PRODUCT 2009年8月20日@
@@ ProtectVer @ ObjectVer @ 127.8.1 @ BCM_SDE5.03 @ @产品2009年8月4日06:56:19 @
@@ KernelSw @ ObjectVer @ 0.0.1 @ BCM-7454 @ @产品2007年12月19日@
@ @ ReceiverSw @ ObjectVer @ E.5.6.001 @ HWBC01ZS @ PRODUCT @ 2010年5月3日@

我希望输出像一个数组

MMIVLoader 4.1.2
MMIVLib         4.1.2
HuaweFGDLDrv 01.00.09
ProtectVer 127.8.1 
KernelSw 0.0.1
ReceiverSw E.5.6.001 …
Run Code Online (Sandbox Code Playgroud)

c# string text-parsing

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

#include <string>将~43 KB添加到我的exe中

我正在使用Code :: Blocks来编写我的程序,当我包含<string>(或<iostream>)我的exe的大小增长时.我的程序非常简单,我需要保持小于20kb.我很确定这种情况正在发生,因为C++标准委员会在没有.h的情况下为许多新库交换了旧的.h版本.但是我怎么能阻止它添加~43kb?是否有Code :: Blocks的设置,以便它不会添加额外的kb或是否有我可以使用的另一个本机库?

c++ native codeblocks

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

为什么全局变量没有用字符串初始化我在extern变量中给出的内容

//s_request_view() constructor is declared as below
namespace Identity_VIEW
{
Published_view_identity s_request_view("SAMPLE");
};

//The constructor is called in another source file as below,
bind_view(Identity_VIEW::s_request_view);
Run Code Online (Sandbox Code Playgroud)

这个相同的代码在Windows上工作正常,但在SBC(PowerPC)上,s_request_view作为NULL传递.

谁能帮助我找出它为什么表现不同?

c++ powerpc

2
推荐指数
1
解决办法
256
查看次数

for if with if语句

我想在这里问一些逻辑问题.

假设我在javascript中有一个for循环来删除整个项目: -

var i = 0;
for (i=0;i<=itemsAll;i++) {
    removeItem(i);
}
Run Code Online (Sandbox Code Playgroud)

当i = current =例如2或3时,我不想删除项目.

我如何或在何处在此当前for循环中添加if-else语句?

请帮忙,有人吗?

javascript loops

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

什么是绿色线程?

什么是绿色螺纹在轨道上的红宝石中意味着它实际上做什么?是一个."在程序周围共享固定大小的线程池的设计?" 湾 "当线程被虚拟机或解释器模拟时?" 或c."程序在多个CPU上运行?"

请用正确的解释?

ruby

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