小编Ste*_*ing的帖子

如何在RESTful WCF API中实现HMAC身份验证

我们正在使用WCF构建一个RESTful API(目前.Net 3.5,但很快将转向.Net 4).我们有一个功能框架,但目前没有安全保障.它需要可以从.Net应用程序以及iOS,Android和Web应用程序访问.

我们想使用此处此处描述的HMAC身份验证方案,但在描述如何验证哈希时,这两个示例似乎都分崩离析.第一个示例无法描述UserKeys对象(哈希表?),第二个示例缺少客户端和服务器端的GetUserKey方法.

任何人都可以解释如何在这些示例中生成/存储/检索/使用"用户密钥"/令牌,或者提供如何在RESTful WCF服务中使用HMAC授权的更好示例(如果可能的话,还有源代码)?

编辑: 经过更多的研究,我们确定我们需要更多的" 授权 "技术而不是" 身份验证 "技术(语义?).我们实施了基本授权并保护了SSL背后的API.基本授权使用与Web请求相同的"授权"标头作为HMAC 身份验证方案,但传递用Base64编码的用户名:密码字符串而不是令牌.这允许我们针对我们的数据库自定义验证用户,以确定用户是否获得许可并具有访问所需API方法的适当安全权限.

我们当然愿意听取有关如何完成自定义用户名/密码验证的其他选项以及其他保护API的方法.

c# authentication wcf hmac

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

绑定到Nullable <DateTime>控件属性

我们有一个自定义控件,它具有System.Nullable类型的"Value"属性(又名System.DateTime?).我们有一个具有相同类型的"已接收"属性的对象.当我们尝试将控件绑定到对象时,抛出以下InvalidCastException:

从 '的System.DateTime' 无效转换到 'System.Nullable`1 [[System.DateTime的,mscorlib程序,版本= 2.0.0.0,文化=中性公钥= b77a5c561934e089]]'.

这是我们正在做的事情:

对象属性:

private System.DateTime? _dateTimeReceived;
public System.DateTime? DateTimeReceived
{
    get
    {
        return this._dateTimeReceived;
    }
    set
    {
        this._dateTimeReceived = value;
        this.OnChanged("DateTimeReceived", value); //Implements INotifyPropertyChanged and fires PropertyChanged event
    }
}
Run Code Online (Sandbox Code Playgroud)

控制属性:

private System.DateTime? _value;
[System.ComponentModel.Category("Behavior")]
[System.ComponentModel.Description("The current date value for this control")]
public new System.DateTime? Value
{
    get
    {
        return this._value;
    }

    set
    {
        this._value = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

在应用程序中,抛出异常的位置:

this.dateReceived.DataBindings.Add("Value", this._object, "DateTimeReceived");
Run Code Online (Sandbox Code Playgroud)

如您所见,对象的属性(this._object.DateTimeReceived)是System.DateTime?类型和控件的属性(this.dateReceived.Value)是一个System.DateTime?类型.

为什么会导致InvalidCastException?我们如何纠正这一点,使其正确绑定?

更新2009-10-29 14:26 CDT:

这是堆栈跟踪: …

c# data-binding datetime nullable winforms

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

标签 统计

c# ×2

authentication ×1

data-binding ×1

datetime ×1

hmac ×1

nullable ×1

wcf ×1

winforms ×1