VerifyTotp always fails
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 1.3k
- Forks
- 179
- PR merge metrics
- No merged PRs in 30d
Description
1.VS 2022:New ASP.NET Core Web (Model-Model-Controller)
2.Install-Package Otp.NET, Install-Package QRCoder
3.HomeController.cs
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
using Web.Models;
using OtpNet;
using QRCoder;
using System.Text;
public class HomeController : Controller
{
private readonly ILogger _logger;
private const string Secret = "JBSWY3DPEHPK3PXP";
private const string BaseUser = "test";
private const string Issuer = "demo";
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
return View();
}
public IActionResult Qrcode()
{
string uriString = new OtpUri(OtpType.Totp, Secret, BaseUser, Issuer).ToString();
using QRCodeGenerator qrGenerator = new();
using QRCodeData qrCodeData = qrGenerator.CreateQrCode(uriString, QRCodeGenerator.ECCLevel.Q);
using PngByteQRCode qrCode = new(qrCodeData);
{
byte[] qrCodeImage = qrCode.GetGraphic(20);
return File(qrCodeImage, "image/jpeg");
}
}
public IActionResult Validate(string code)
{
var totp = new Totp(Encoding.UTF8.GetBytes(Secret));
var verificationWindow = VerificationWindow.RfcSpecifiedNetworkDelay;
var isValid = totp.VerifyTotp(code, out long timeWindowUsed, verificationWindow);
return Content(isValid ? "Success" : "Fail");
}
}
4.Views/Home/Index.cshtml
@{
ViewData["Title"] = "Home Page";
}
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<img src="/Home/Qrcode" style="width: 300px;" />
<form action="/Home/Validate" method="post">
Code: <input name="code" />
<input type="submit" value="Validate" />
</form>
</div>
5.run
6.Scan the QR code using APP Authenticator
7.Enter totp code, VerifyTotp always fails
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the supplied ASP.NET Core sample, then inspect HomeController.cs, especially the Qrcode and Validate actions, alongside Views/Home/Index.cshtml. Compare the QR code's generated value with the code passed to VerifyTotp. Done means identifying why the scanned code is rejected and recording a verified fix or precise compatibility diagnosis.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- authentication, security
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100