小编Kev*_*ose的帖子

使用OpenID来证明Stackoverflow成员资格

这是交易:
- Flair几乎要求Facebook应用程序 -
我正在努力学习Facebook平台

因此,我写了一个小巧的Facebook应用程序,将你的Flair嵌入到你个人资料一侧的方框中. 如果您对Facebook感兴趣 ; 请注意,这是一项非常重要的工作,容易发生变化并且有一大堆粗糙的边缘.

但是,我没有一种优雅的方式来说明这是"这是我的Stackoverflow配置文件"来自这个极简的应用程序.我目前的解决方案最能证明这一形象.坦率地说,这是愚蠢的; 并没有什么可以阻止冒充.

没有OpenID的经验,我想知道是否有某种方式(以及这种方式的一些例子)让用户向第三方提供他们的Stackoverflow标识?


行为改变为Noldorin的回答.在UserVoice上
请求以更好的方式执行此操作.

php openid facebook stackexchange-api

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

如何绑定Text Box的SelectionStart属性?

我用这个:

<TextBox x:Name="Test"/>
<TextBlock Text="{Binding SelectionStart, ElementName=Test}"/>
Run Code Online (Sandbox Code Playgroud)

但它总是显示0.
我该如何对待它?
谢谢.

silverlight binding textbox selection

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

未发送IAudioSessionManager2通知

我正在尝试通过Windows 7的IAudioSessionManager2 COM接口(与IAudioSessionNotification结合)监视新的音频会话.目前,IAudioSessionNotification :: OnSessionCreated()从未被调用,我已经没有想到为什么.

代码注册自定义IAudioSessionNotification:

#define SAFE_RELEASE(comObj) \
if(comObj != NULL) \
    { (comObj)->Release(); comObj = NULL; }

BOOL success = false;

HRESULT res;
IClassFactory* pFactory;
IMMDevice* pDevice;
IMMDeviceEnumerator* pEnumerator;

SESSION_LISTENER = NULL;
SESSION = NULL;

res = CoInitialize(NULL);

if(res != S_OK && res != S_FALSE)
    return false;

res = CoGetClassObject(CLSID_CustomAudioFactory, CLSCTX_ALL, NULL, __uuidof(IClassFactory), (void**)&pFactory);
if(res != S_OK)  goto Exit;

res = pFactory->CreateInstance(NULL, CLSID_CustomAudioNotifications, (void**)&SESSION_LISTENER);
if(res != S_OK)  goto Exit;

res = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL, CLSCTX_ALL, __uuidof(IMMDeviceEnumerator), (void**)&pEnumerator);
if(res != …
Run Code Online (Sandbox Code Playgroud)

com audio windows-7

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

这个clone()有什么问题?

我已经编写了这个克隆方法,当Employee类的父类是抽象的,而父类中的clone()方法是abstract.I想用这个代码复制Employee的对象的原始数据类型,而不是复制每个原始数据单独键入,但此代码与我调用clone()方法的行有问题.(此代码在Employee类中)

public Object clone() {
    Object obj = new Object();
    Object object = obj.clone();  //Emphasis here
    return object;

}
Run Code Online (Sandbox Code Playgroud)

错误是:Object类型的方法clone()不可见.

但是我的Employee类在类层次结构中,可以访问Object类中的protected clone()方法.

这是我简单的Employee类:

public class Employee extends Person implements Cloneable {
private int ID;

public Employee() {
    ID = 0;
}

public void setID(int ID) {
    this.ID = ID;
}

public int getID() {
    return ID;
}

public Object clone1() throws CloneNotSupportedException {
    try {
        Object obj = new Object();

        Object object = obj.clone();
        return object;
    } catch (CloneNotSupportedException ex) …
Run Code Online (Sandbox Code Playgroud)

java clone

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

将ASP.NET项目移动到.NET 4

我正在将ASP.NET项目从.NET 3.5迁移到.NET 4.

如果我在web.dev下调试(即在Visual Studio [2010]中),一切都很好用,但是当我尝试在IIS7 [.5]下运行时,调试器无法附加.直接在IIS下运行项目只会导致它返回403s(没有子代码,因此没有多少帮助).

我通过获取当前(和工作!).NET 3.5站点并将AppPool更改为具有.NET 4运行时的站点来设置站点.我已经确认所有文件权限都是Kosher(至少从.NET 3.5的角度来看).我觉得好像我在这里错过了一些配置步骤......

尝试连接调试器时的错误消息只是"无法在Web服务器上启动调试".这不是世界上最有用的错误消息.

直接附加到关联的w3wp进程强烈建议应用程序永远不会成功启动.

基本问题是,对于在IIS下运行的项目,我如何影响从.NET 3.5到.NET 4的这种更改?

windows asp.net iis-7 .net-4.0

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

处理泄漏的IAsyncDisposable实例的推荐方法是什么?

我一直在熟悉C#8和.NET Core 3.0中(计划要添加的)某些内容,并且不确定实现IAsyncDisposable的正确方法(在撰写本文时,此链接实际上没有任何指导) )。

特别是,我不清楚在未明确处理实例的情况下该怎么办-也就是说,该实例未包装在中async using(...).DisposeAsync()也未明确调用。

我首先想到的是做与实现IDisposable时相同的事情:

  • 我的DisposeAsync()实现调用DisposeAsync(bool disposing)带有disposing: true
  • 实现终结器(带有~MyType()),该终结器调用DisposeAsync(disposing: false)
  • DisposeAsync(bool disposing)实际上释放和/或处置所有内容,并抑制if的终结disposing == true

我担心的是,没有什么可以等待DisposeAsync(bool)finalizer 的结果,而显式地等待finalizer似乎真的很危险。

当然,“只是泄漏”似乎也不理想。

为了具体起见,这里有一个(简化的)示例类,它确实有一个终结器:

internal sealed class TestAsyncReader: IAsyncDisposable
{
    private bool IsDisposed => Inner == null;
    private TextReader Inner;
    internal TestAsyncReader(TextReader inner)
    {
        Inner = inner;
    }

    // the question is, should this exist?
    ~TestAsyncReader()
    {
        DisposeAsync(disposing: false);
    }

    private …
Run Code Online (Sandbox Code Playgroud)

c# dispose asynchronous

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

有没有标准的方法来实现"Vetoable"事件?

我正在使用事件作为游戏模型的一部分,并且为了扩展性和代码"地点性"的缘故,我需要能够否决大多数行为.

更清楚的是,几乎每种具有副作用的方法都采用以下形式:

public event TryingToDoSomethingHandler TryingToDoSomething;
public event SomethingHappenedHandler   SomethingHappened;

/*
 * Returning true indicates Something happened successfully.
 */
public bool DoSomething(...)
{
  //Need a way to indicate "veto" here
  TryingToDoSomething(...);

  //Actual do it

  SomethingHappened(...);

  return true;
}
Run Code Online (Sandbox Code Playgroud)

我想要的是TryingToDoSomething(...)能够指示已注册的事件处理程序对象(通过返回false,修改out参数或其他内容).所以代码在道德上等同于:

/*
 * Returning true indicates Something happened successfully.
 */
public bool DoSomethingImproved(...)
{
  //Pretty sure multicast delegates don't work this way, but you get the idea
  if(!TryingToDoSomething(...)) return false;

  //Actual do it

  SomethingHappened(...);

  return true;
}
Run Code Online (Sandbox Code Playgroud)

在C#/ .NET中是否有可接受的或标准的方法来执行此操作?

c# events

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

如何在C#中使用WM_Close?

任何人都可以提供一个如何使用WM_CLOSE关闭像记事本这样的小应用程序的例子吗?

c# pinvoke

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

在FireFox中收听历史事件?

从FireFox扩展的上下文...

是否有某种方式可以通知back/forward/goto/reload/etc. "历史事件"?我不想找到取消或改变它们的方法,只是为了让它们意识到它们.

到目前为止,我最好的解决方案是挂钩负责触发历史导航的UI元素(菜单项和按钮).除了最严格控制的FireFox安装之外,这显然不能很好地工作,因为它只需要一个扩展:

gBrowser.webNavigation.goBack()
Run Code Online (Sandbox Code Playgroud)

...毁了我的一天,更不用说网页自己玩历史游戏了.

javascript firefox

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

几乎所有OpenId依赖方都拒绝来自我的dotNetOpenAuth支持提供商的断言

构建一个OpenId提供程序,我遇到了一个奇怪的问题,只有Stack Exchange站点会接受它.

发现工作正常,看着我发送的日志流量(我看起来像什么)回复有效的响应.

奇妙的是,没有合规性测试*告诉我什么是错的,大多数通过OpenId提供登录的网站也没有给你任何有用的错误消息.Stack Overflow给出了一些,但它似乎是唯一接受我的断言的依赖方,所以......是的.

无论如何,如果我尝试登录(例如)Typepad,我最终会重定向回到类似的网址

https://www.typepad.com/secure/services/signin/openid?openid-check=1&archetype.quickreg=1&tos_locale=en_US&portal=typepad&oic.time=1303249620-9db5665031c9c6b36031&openid.claimed_id=https://example/user/8c481fb7-1b5c-4e50-86b5-xxxxxxxxx&openid.identity=https://example/user/8c481fb7-1b5c-4e50-86b5-xxxxxxxxx&openid.sig=hoaxQrsN4BBg6H8kp50NoQwpHmcO96BBe+jB3oOP2UA=&openid.signed=claimed_id,identity,assoc_handle,op_endpoint,return_to,response_nonce,ns.alias3,alias3.mode&openid.assoc_handle={634388464235195799}{oqMrOA==}{32}&openid.op_endpoint=https://example/openid/provider&openid.return_to=https://www.typepad.com/secure/services/signin/openid?openid-check=1&archetype.quickreg=1&tos_locale=en_US&portal=typepad&oic.time=1303249620-9db5665031c9c6b36031&openid.response_nonce=2011-04-19T21:47:03Z1aa4NZ48&openid.mode=id_res&openid.ns=http://specs.openid.net/auth/2.0&openid.ns.alias3=http://openid.net/srv/ax/1.0&openid.alias3.mode=fetch_response

为(稍微)更容易阅读打破了:

openid-check=1
archetype.quickreg=1
tos_locale=en_US
portal=typepad
oic.time=1303249620-9db5665031c9c6b36031
openid.claimed_id=https://example/user/8c481fb7-1b5c-4e50-86b5-xxxxxxxxx
openid.identity=https://example/user/8c481fb7-1b5c-4e50-86b5-xxxxxxxxx
openid.sig=hoaxQrsN4BBg6H8kp50NoQwpHmcO96BBe+jB3oOP2UA=
openid.signed=claimed_id,identity,assoc_handle,op_endpoint,return_to,response_nonce,ns.alias3,alias3.mode
openid.assoc_handle={634388464235195799}{oqMrOA==}{32}
openid.op_endpoint=https://example/openid/provider
openid.return_to=https://www.typepad.com/secure/services/signin/openid?openid-check=1
archetype.quickreg=1
tos_locale=en_US
portal=typepad
oic.time=1303249620-9db5665031c9c6b36031
openid.response_nonce=2011-04-19T21:47:03Z1aa4NZ48
openid.mode=id_res
openid.ns=http://specs.openid.net/auth/2.0
openid.ns.alias3=http://openid.net/srv/ax/1.0
openid.alias3.mode=fetch_response
Run Code Online (Sandbox Code Playgroud)

这是用户的XRDS(因为发现似乎没问题).

<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS
xmlns:xrds="xri://$xrds"
xmlns:openid="http://openid.net/xmlns/1.0"
xmlns="xri://$xrd*($v*2.0)">
    <XRD>
      <Service priority="10">
        <Type>http://specs.openid.net/auth/2.0/signon</Type>
        <LocalID>https://example/user/8c481fb7-1b5c-4e50-86b5-xxxxxxxxx</LocalID>
        <Type>http://openid.net/extensions/sreg/1.1</Type>
        <Type>http://axschema.org/contact/email</Type>
        <URI>https://example/openid/provider</URI>
      </Service>

      <Service priority="20">
        <Type>http://openid.net/signon/1.0</Type>
        <Type>http://openid.net/extensions/sreg/1.1</Type>
        <Type>http://axschema.org/contact/email</Type>
        <URI>https://example/openid/provider</URI>
     </Service>
   </XRD>
</xrds:XRDS>
Run Code Online (Sandbox Code Playgroud)

如果你深入了解TypePad的html,你会发现以下错误信息

<!-- Error Code: unexpected_url_redirect -->
Run Code Online (Sandbox Code Playgroud)

......这就是我用它们作为例子的原因.有点无用,但它的东西.

这段代码非常基于dotNetOpenAuth附带的示例MVC项目,SendAssertion实现是我怀疑生病的地方.

protected ActionResult SendAssertion(IAuthenticationRequest authReq)
{
    // Not shown: redirect to a …
Run Code Online (Sandbox Code Playgroud)

c# openid provider dotnetopenauth

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