小编Mar*_*cus的帖子

在多租户应用程序中使用 SimpleSAMLphp

我们应用程序的租户有自己的子域,例如 customer1.domain.com,尽管它是一个代码库。一些租户希望 SP 使用 SAML 发起 SSO。

实现这一目标的最佳方法是什么?

  1. 静态共享子域上的 SimpleSAMLphp,例如 sso.domain.com/saml/
  2. SimpleSAMLphp 作为租户的一部分,例如 customer1.domain.com/saml/

如果我们选择选项 1,我们如何知道传入的 SAML 请求是针对哪个租户的?

如果我们选择选项 2,您建议如何为元数据/authsources 配置 SimpleSAMLphp,因为它似乎只支持硬编码文件。

谢谢

php saml multi-tenant single-sign-on simplesamlphp

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

如何从给定的父节点获取所有子节点?

我有一个父/子ID列表,并希望获得给定父ID的所有子ID.没有空父项(顶级ID不显示为子ID).

目前,父/子ID在列表中记录为KeyValuePair,但是如果更好的话,可以很容易地将其更改为另一个数据结构:

List<KeyValuePair<int, int>> groups = new List<KeyValuePair<int, int>>();
groups.Add(new KeyValuePair<int,int>(parentID, childID));
Run Code Online (Sandbox Code Playgroud)

例如,以下是示例父/子.父母27的孩子将是5944,2065,2066,2067,6248,6249,6250.

Parent  Child
27      1888
1888    5943
1888    5944
5943    2064
5943    2065
5943    2066
5943    2067
2064    6248
2064    6249
2064    6250
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

.net c# algorithm recursion relationship

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

Data Protection API范围:LocalMachine和CurrentUser

我们有一个加密/解密数据的应用程序DataProtectionScope.LocalMachine.我们现在必须将范围更改为DataProtectionScope.CurrentUser.

LocalMachine当范围更改为时,在范围内加密的现有字符串是否仍然可读CurrentUser,假设用户当然登录到同一台计算机?

编辑:我写了一个非常快速和肮脏的测试应用程序.奇怪的是,在同一台计算机上,我可以通过LocalMachine和CurrentUser范围解密在LocalMachine或CurrentUser范围内加密的字符串.这听起来不像是正确的行为,帮忙!

    private void btnUserEncrypt_Click(object sender, EventArgs e)
    {
        //encrypt data
        var data = Encoding.Unicode.GetBytes(txtUserEncrypt.Text);
        byte[] encrypted = ProtectedData.Protect(data, null, DataProtectionScope.CurrentUser);

        txtUserEncrypt.Text = Convert.ToBase64String(encrypted);
    }

    private void btnUserDecrypt_Click(object sender, EventArgs e)
    {
        byte[] data = Convert.FromBase64String(txtUserDecrypt.Text);

        //decrypt data
        byte[] decrypted = ProtectedData.Unprotect(data, null, DataProtectionScope.CurrentUser);
        txtUserDecrypt.Text = Encoding.Unicode.GetString(decrypted);
    }

    private void btnMachineEncrypt_Click(object sender, EventArgs e)
    {
        //encrypt data
        var data = Encoding.Unicode.GetBytes(txtMachineEncrypt.Text);
        byte[] encrypted = ProtectedData.Protect(data, null, DataProtectionScope.LocalMachine);

        txtMachineEncrypt.Text = Convert.ToBase64String(encrypted);
    }

    private …
Run Code Online (Sandbox Code Playgroud)

.net c# encryption dpapi

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

如何在C中打印'off_t'?

可能重复:
我应该如何打印off_t和size_t等类型?

我正在使用fstat(stream, &fs)C中的文件大小返回类型off_t.

打印这个只是一个警告:

format ‘%d’ expects type ‘int’, but argument has type ‘off_t’
Run Code Online (Sandbox Code Playgroud)

任何想法如何打印这没有编译器错误?

c printf

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

(PHP)Singleton数据库类 - 静态方法怎么样?

这是一个基本的网站.根据这里的答案,我这样做:

private $db;

public function __construct($id = null) {
    $this->db = Db::getInstance(); //singleton from the Db class
Run Code Online (Sandbox Code Playgroud)

但是如果有静态方法,我就不能使用特定于对象的变量.

有没有什么比在静态方法中手动指定db变量更好的了?

public static function someFunction($theID){
    $db = Db::getInstance();
Run Code Online (Sandbox Code Playgroud)

编辑:使变量静态不能解决问题.Access to undeclared static property.我仍然需要在静态函数中分配变量.问题是询问是否有解决方法.

我的数据库类(虽然对此讨论不重要):

class Db {
private static $m_pInstance;
private function __construct() { ... }

public static function getInstance(){
    if (!self::$m_pInstance)
        self::$m_pInstance = new Db();
    return self::$m_pInstance;
}
Run Code Online (Sandbox Code Playgroud)

}

php database variables singleton static

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

(WCF)如何在我的服务中获取登录客户端的用户名?

我有一个自定义密码验证器,一个扩展名来自System.IdentityModel.Selectors.UserNamePasswordValidator.如何从服务中获取用户名?

authentication wcf

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

怎么办WHERE((SELECT COUNT(*)...)= 0 OR EXISTS(SELECT*FROM ...))?

例如,我有一个表Person,每个条目都有一个ID,我有一个表PersonEvent,记录personID每个人在一个事件.

如果PersonEvent事件中不包含任何行,则Person表中的每个人都会参加.但是,如果表中有条目,则PersonEvent只有那些人参加了此活动.

我想做一个查询,例如:

SELECT * 
FROM Person p 
WHERE ((SELECT COUNT(*)
        FROM PersonEvent pe 
        WHERE pe.personID = p.ID 
        AND pe.eventID = '290') = 0 
      OR EXISTS 
        (SELECT * 
         FROM PersonEvent pe 
         WHERE pe.personID = p.ID 
         AND pe.eventID = '290'))
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

sql join exists

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

RegEx'匹配'Java和.NET之间的不同

我有正则表达式,它在.NET中匹配但在Java中不匹配.我认为Java版本是正确的,所以我想知道如何在.NET中复制这个功能.

这是模式:

([12AB]?)[: ]*(Mo|Mn|M|Tu|We|Wd|W|Th|Fr|F|Sa|Su)(\w*)[: ]*(\w*)[: ]*(\w*)
Run Code Online (Sandbox Code Playgroud)

这是测试字符串:

D1:AM
Run Code Online (Sandbox Code Playgroud)

这是一个有效的例子:RegEx Fiddle

单击Java以查看Java的结果: Java Regex结果

点击.NET的结果: .NET正则表达式结果

.net c# java regex

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

优化工作调度 MiniZinc 代码——约束编程

请你帮助优化这个工作的 MiniZinc 代码:

任务:有一个有 6 个时隙的会议。有 3 位演讲者参加了会议,每个人都可以在特定的时段使用。每个扬声器将出现预定数量的插槽。

目标:生成发言者最早完成的时间表。

示例:演讲者 A、B 和 C。演讲时长 = [1, 2, 1]

扬声器可用性:

+---+------+------+------+
|   | Sp.A | Sp.B | Sp.C |
+---+------+------+------+
| 1 |      | Busy |      |
| 2 | Busy | Busy | Busy |
| 3 | Busy | Busy |      |
| 4 |      |      |      |
| 5 |      |      | Busy |
| 6 | Busy | Busy |      |
+---+------+------+------+
Run Code Online (Sandbox Code Playgroud)

链接到工作 …

optimization mathematical-optimization solver constraint-programming minizinc

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

使用 UTF-8 字符更正 SHA256 实现

我遇到了比较不同语言/函数生成的 SHA256 哈希的问题。

例如,SHA256("í")要么返回:

f3df1f9c358ae8eceb8fce7c00614288d113ad55315f4ebb909774a7daadfc84
Run Code Online (Sandbox Code Playgroud)

-或者-

127035a8ff26256ea0541b5add6dcc3ecdaeea603e606f84e0fd63492fbab2c5
Run Code Online (Sandbox Code Playgroud)

对于一个字符的字符串,上述哪个哈希是正确的,处理 UTF-8 字符串的正确方法是什么?

hash utf-8 sha character-encoding

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