Skip to content

Commit 707779d

Browse files
Release 17.10.2025 | Redirect to access window
New Add new error view
2 parents 8cb10f6 + 7e62935 commit 707779d

10 files changed

Lines changed: 355 additions & 32 deletions

Dto/MultiFactorAccessPageDto.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace MultiFactor.IIS.Adapter.Dto
2+
{
3+
public class MultiFactorAccessPageDto
4+
{
5+
public string Url { get; set; }
6+
}
7+
}

Dto/MultiFactorWebResponseDto.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
namespace MultiFactor.IIS.Adapter.Dto
2+
{
3+
public class MultiFactorWebResponseDto<TModel>
4+
{
5+
public bool Success { get; set; }
6+
7+
public string Message { get; set; }
8+
9+
public TModel Model { get; set; }
10+
}
11+
}

Dto/ScopeSupportInfoDto.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+

2+
3+
namespace MultiFactor.IIS.Adapter.Dto
4+
{
5+
public class ScopeSupportInfoDto
6+
{
7+
public string AdminName { get; set; }
8+
public string AdminEmail { get; set; }
9+
public string AdminPhone { get; set; }
10+
11+
public bool IsEmpty()
12+
{
13+
return string.IsNullOrWhiteSpace(AdminName)
14+
&& (string.IsNullOrWhiteSpace(AdminEmail)
15+
|| string.IsNullOrWhiteSpace(AdminPhone));
16+
}
17+
}
18+
}

MultiFactor.IIS.Adapter.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
<Reference Include="Microsoft.CSharp" />
4646
<Reference Include="System.DirectoryServices" />
4747
<Reference Include="System.DirectoryServices.Protocols" />
48+
<Reference Include="System.Net.Http" />
4849
<Reference Include="System.Web.DynamicData" />
4950
<Reference Include="System.Web.Entity" />
5051
<Reference Include="System.Web.ApplicationServices" />
@@ -68,6 +69,9 @@
6869
<ItemGroup>
6970
<Compile Include="Configuration.cs" />
7071
<Compile Include="ConfigurationKeys.cs" />
72+
<Compile Include="Dto\MultiFactorAccessPageDto.cs" />
73+
<Compile Include="Dto\MultiFactorWebResponseDto.cs" />
74+
<Compile Include="Dto\ScopeSupportInfoDto.cs" />
7175
<Compile Include="Extensions\HttpContextBaseExtensions.cs" />
7276
<Compile Include="Interop\NameTranslator.cs" />
7377
<Compile Include="Interop\NativeMethods.cs" />

Properties/Resources.Designer.cs

Lines changed: 72 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Properties/Resources.resx

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,110 @@
154154
});
155155
&lt;/script&gt;
156156
&lt;/body&gt;
157+
&lt;/html&gt;</value>
158+
</data>
159+
<data name="user_not_registered.html" xml:space="preserve">
160+
<value>&lt;!DOCTYPE html&gt;
161+
&lt;html&gt;
162+
&lt;head&gt;
163+
&lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;
164+
&lt;title&gt;Двухфакторная аутентификация&lt;/title&gt;
165+
&lt;style&gt;
166+
* {
167+
box-sizing: border-box;
168+
}
169+
body {
170+
margin: 0;
171+
padding: 0;
172+
background: #ECF5FC;
173+
font-family: Arial, Helvetica, sans-serif;
174+
font-weight: bolder;
175+
color: #142553;
176+
}
177+
.text-container {
178+
place-self: anchor-center;
179+
position: absolute;
180+
border-radius: 15px;
181+
background: #FFFFFF;
182+
box-shadow: 0px 4px 18px #00000026;
183+
padding: 32px;
184+
width: 360px;
185+
height: 520px;
186+
}
187+
.support-details{
188+
display: grid;
189+
gap: 16px;
190+
padding: 8px 0;
191+
}
192+
.link{
193+
color: #6A9CD6;
194+
}
195+
&lt;/style&gt;
196+
&lt;/head&gt;
197+
&lt;body&gt;
198+
&lt;div class="text-container"&gt;
199+
&lt;img class="imgLnk" src="data:image/png;base64,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" alt=""&gt;
200+
&lt;h2&gt;Access denied&lt;/h2&gt;
201+
&lt;p&gt;If you think something is wrong, please contact the system administrator via the contacts below&lt;/p&gt;
202+
&lt;div class="support-details"&gt;
203+
&lt;strong&gt;{AdminName}&lt;/strong&gt;
204+
&lt;strong&gt;&lt;a class="link" href="mailto:{Model.AdminEmail}"&gt;{AdminEmail}&lt;/a&gt;&lt;/strong&gt;
205+
&lt;strong&gt;&lt;a class="link" href="tel:{Model.AdminPhone}"&gt;{AdminPhone}&lt;/a&gt;&lt;/strong&gt;
206+
&lt;/div&gt;
207+
&lt;/div&gt;
208+
&lt;/body&gt;
209+
&lt;/html&gt;</value>
210+
</data>
211+
<data name="user_not_registered_ru.html" xml:space="preserve">
212+
<value>&lt;!DOCTYPE html&gt;
213+
&lt;html&gt;
214+
&lt;head&gt;
215+
&lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;
216+
&lt;title&gt;Двухфакторная аутентификация&lt;/title&gt;
217+
&lt;style&gt;
218+
* {
219+
box-sizing: border-box;
220+
}
221+
body {
222+
margin: 0;
223+
padding: 0;
224+
background: #ECF5FC;
225+
font-family: Arial, Helvetica, sans-serif;
226+
font-weight: bolder;
227+
color: #142553;
228+
}
229+
.text-container {
230+
place-self: anchor-center;
231+
position: absolute;
232+
border-radius: 15px;
233+
background: #FFFFFF;
234+
box-shadow: 0px 4px 18px #00000026;
235+
padding: 32px;
236+
width: 360px;
237+
height: 520px;
238+
}
239+
.support-details{
240+
display: grid;
241+
gap: 16px;
242+
padding: 8px 0;
243+
}
244+
.link{
245+
color: #6A9CD6;
246+
}
247+
&lt;/style&gt;
248+
&lt;/head&gt;
249+
&lt;body&gt;
250+
&lt;div class="text-container"&gt;
251+
&lt;img class="imgLnk" src="data:image/png;base64,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" alt=""&gt;
252+
&lt;h2&gt;В доступе отказано&lt;/h2&gt;
253+
&lt;p&gt;Если вы считаете это неправильным, пожалуйста, обратитесь к администратору системы по контактам ниже&lt;/p&gt;
254+
&lt;div class="support-details"&gt;
255+
&lt;strong&gt;{AdminName}&lt;/strong&gt;
256+
&lt;strong&gt;&lt;a class="link" href="mailto:{Model.AdminEmail}"&gt;{AdminEmail}&lt;/a&gt;&lt;/strong&gt;
257+
&lt;strong&gt;&lt;a class="link" href="tel:{Model.AdminPhone}"&gt;{AdminPhone}&lt;/a&gt;&lt;/strong&gt;
258+
&lt;/div&gt;
259+
&lt;/div&gt;
260+
&lt;/body&gt;
157261
&lt;/html&gt;</value>
158262
</data>
159263
</root>

Services/AccessUrl.cs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
using System;
1+
using MultiFactor.IIS.Adapter.Dto;
22
using MultiFactor.IIS.Adapter.Services.Ldap;
3+
using System;
4+
using System.Security.Principal;
5+
using System.Threading.Tasks;
36

47
namespace MultiFactor.IIS.Adapter.Services
58
{
@@ -36,5 +39,18 @@ public string Get(LdapIdentity identity, string postbackUrl)
3639
var multiFactorAccessUrl = _api.CreateRequest(twoFAIdentity, identity.RawName, postbackUrl, profile?.Phone);
3740
return multiFactorAccessUrl;
3841
}
42+
43+
public async Task<ScopeSupportInfoDto> Info()
44+
{
45+
try
46+
{
47+
return _api.GetScopeSupportInfo();
48+
}
49+
catch (Exception ex)
50+
{
51+
Logger.API.Info($"Error while catching adminInfo:{ex.Message}");
52+
return new ScopeSupportInfoDto();
53+
}
54+
}
3955
}
4056
}

0 commit comments

Comments
 (0)